package com.csb.mapper;

import com.csb.pojo.AddUserRole;
import com.csb.pojo.UserInfo;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.List;

@Mapper
@Repository
public interface UserMapper<删除用户对应的角色信息> {
    // 根据账号,查找该用户信息
    UserInfo getUserInfoByAccount(String account);

    // 根据信息添加用户
    int addUserInfo(UserInfo userInfo);

    // 验证账号是否重复
    int chkAccount(String account);

    // 获取申请账号列表
    List<UserInfo> getAroUserList(@Param("isLogin") int userLoginNo, @Param("isShow") int userShowNo);

    // 同意账号的申请
    int userAroYes(@Param("ids") Integer[] ids, @Param("isLogin") int userLoginYes,@Param("isShow") int userShowYes);

    // 不同意账号的申请
    void userAroNo(@Param("ids") Integer[] ids);

    // 获取所有账号列表
    List<UserInfo> findAllUserInfo(@Param("isLogin") int userLoginYes);

    // 禁用或者启用账号
    boolean updateUserShowYesOrNo(@Param("id") Integer id, @Param("isShow") int userShow);

    // 修改登陆时间
    void updateUserCreationTime(@Param("account") String account,@Param("creationTime") String creationTime);

    // 根据账号修改信息
    int updateUserInfo(UserInfo userInfo);

    // 修改密码
    int updateUserPwd(UserInfo userInfo);

    int updateManager(@Param("id") Integer id,@Param("rid") int userRoleManager);

    // 删除用户信息
    void deleteUserInfo(Integer id);

    // 删除用户对应的角色信息
    void deleteUserRole(Integer id);

    // 上传头像
    int updateHeadProtrait(@Param("photoFile") byte[] bytes,@Param("account") String account);

    // 设置用户的权限
    void userAddRole(AddUserRole addUserRole);

    Integer selectUserId(String account);
}
